:- module(lint).
:- export lint / 2.
:- export lint / 1.
:- comment(summary, "Heuristic program checker").
:- comment(author, "Joachim Schimpf, IC-Parc").
:- comment(copyright, "Imperial College London and Parc Technologies").
:- comment(date, "$Date: 2003/09/02 19:23:08 $").
:- comment(desc, html("\r\n    This library analyses an ECLiPSe source module or file and generates\r\n    warning messages for dubious programming constructs and violation\r\n    of naming conventions.\r\n    ")).
:- comment(lint / 1, [summary : "Check the given source module file", args : ["File" : "Name of the source file (atom or string)"], amode : lint(+), desc : html("\r\n    Analyse a source file, do various heuristic checks on the code,\r\n    and print warnings if appropriate. This is equivalent to\r\n    <PRE>\r\n\tlint(File, [])\r\n    </PRE>\r\n    "), see_also : [lint / 2]]).
:- comment(lint / 2, [summary : "Check the given source module file", args : ["File" : "Name of the source file (atom or string)", "Options" : "A list of Option:Value structures"], amode : lint(+, +), desc : html("\r\n    Analyse a source file, do various heuristic checks on the code,\r\n    and print warnings if appropriate.\r\n<P>\r\n    The possible options are:\r\n<DL>\r\n    <DT>head_unify ('off' or 'on')</DT>\r\n\t<DD>warn if a clause with a cut contains aliasing in the head,\r\n\twhich may indicate non-steadfast code. Default: on.</DD>\r\n    <DT>missing_else ('off' or 'on')</DT>\r\n\t<DD>warn if a conditions does not have an else case, since this\r\n\twill fail and is more clearly written using a simple conjunction\r\n\tor once/1. Default: on.</DD>\r\n    <DT>naming_conventions ('off' or 'on')</DT>\r\n\t<DD>enable/disable naming conventions checks for variable names,\r\n\tpredicate names and module names. Default: on.</DD>\r\n    <DT>singletons ('off' or 'on')</DT>\r\n\t<DD>enable/disable singleton variable checks. Default: on.</DD>\r\n</DL>\r\n    "), see_also : [lint / 1]]).
